#include <atlimage.h>	// Needed for CImage

#ifndef time_h
#define time_h

// Image class which inherits from CImage
class Image: public CImage
{
	public:
		Image();											// Constructor
		Image(const Image &init);							// Copy constructor
		~Image();											// Destructor

		// Member functions
		void ConvertToGreyscale();							// Overwrites the current image with a greyscale version
		Image* GetGreyscale() const;						// Returns a greyscale version of this image
		bool IsGreyscale() const;							// Returns true if the image is single channel
		void DrawRectangle(	int x, int y, int w, int h, 
							BYTE R=0, BYTE G=255, BYTE B=0);// Draw a rectangle
		Image* GetWindow(int x, int y, int w, int h) const;	// Return a specific window
		Image* GetRandomWindow(	int w, int h, 
								bool rand_scale) const;		// Returns random window of the specified dimensions
		Image* GetRescaledImage(int w, int h) const;		// Returns an image rescaled to the specified width and height
		Image* GetRescaledImage(float s) const;				// Returns an image rescaled by the specified scale parameter
};

#endif 